cut (Unix)

In computing, cut is a Unix command line utility which is used to extract sections from each line of input — usually from a file.

Extraction of line segments can typically be done by bytes (-b), characters (-c), or fields (-f) separated by a delimiter (-d — the tab character by default). A range must be provided in each case which consists of one of N, N-M, N- (N to the end of the line), or -M (beginning of the line to M), where N and M are counted from 1 (there is no zeroth value). Since version 6, an error is thrown if you include a zeroth value. Prior to this the value was ignored and assumed to be 1.

Examples

Assuming a file named file containing the lines:

foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

To output the fourth through tenth characters of each line:

% cut -c 4-10 file

This gives the output:

:bar:ba
:two:th
ha:beta
 quick

To output the fifth field through the end of the line of each line using the colon character as the field delimiter:

% cut -d ":" -f 5- file

This gives the output:

quux
five:six:seven
epsilon:zeta:eta:teta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog

(note that as the colon character is not found in the last line the entire line is shown)

Option -d specified a single character delimiter (in the example above it is a colon) which serves as field separator. option -f which specifies range of fields included in the output (here fields range from five till the end ). Option -d presuppose usage of option -f.

To output the third field of each line using space as the field delimiter:

%cut -d " " -f 3 file

This gives the output:

foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu
brown

(note that as the space character is not found in the first three lines these entire lines are shown)

See also

External links